home *** CD-ROM | disk | FTP | other *** search
/ GFX Sensations 1 / Graphic Sensations - Volume 1.iso / tools / amiga / 3d_tools / shelly15.lha / shelly / Shelly.doc < prev    next >
Encoding:
Text File  |  1994-06-09  |  22.3 KB  |  681 lines

  1.                                                              6.6.1994
  2.  
  3. Welcome to:
  4.  
  5.               SHELLY V1.5
  6.               
  7.         INTRODUCTION:
  8.         ¯¯¯¯¯¯¯¯¯¯¯¯¯
  9.         
  10.         Shelly is a tool that generates 3D-Objects of various 
  11.         seashells (Ammonites, Slug-houses etc.) 
  12.         for: POV-V2.0, Real3DV2, X3D and T3Dlib (the last means Imagine, 
  13.         DXF, Rayshade, Vort, Post-Script etc. support! ). 
  14.         (take a look at "examples.jpg")
  15.  
  16.         It uses an algorithm found in:
  17.          Computer&Graphics Vol. 17,No. 1,pp. 79-84, 1993
  18.          ("DIGITAL SEASHELLS" by M.B. Cortie.)
  19.  
  20.         It was written in (portable) C using GCC2.3.3 with TDS, on
  21.         an AMIGA.
  22.  
  23.         The POV output of Shelly consists of triangles.
  24.         The Real3D output is a RPL-Macro executable via
  25.         "Execute named" in the "Macros"-menu and produces 
  26.         a big B-Spline-mesh (except for new calculation mode).
  27.         The T3D-output can be converted via TDDD2xxx to many different
  28.         formats (of course you'll have to get the converters first)
  29.         (available on Aminet, look in 'gfx/3d' ...)
  30.  
  31.         Have fun !
  32.  
  33.  
  34.        Changes:
  35.        ¯¯¯¯¯¯¯¯
  36.  
  37.        This will be the last version of Shelly unless a big amount of
  38.        letters, postcards or E-Mail convince me to keep on!
  39.  
  40.        
  41.        from V1.4 to V1.5:
  42.        ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
  43.        - changed NODULE-mode (consult the Usage section!)
  44.          (some keywords are gone!)
  45.        
  46.        - added new calculation-mode (NEWNOD)^^^!
  47.        
  48.        - added new output (X3D, a VERY fast model-viewer for X11)
  49.  
  50.        - included a small Tcl/Tk-GUI (start with 'wish -file sh.tcl'       
  51.          it should be self explanatory, so no documention ... yet?)
  52.  
  53.        - fixed some problems with not initialized data
  54.  
  55.        - allows to set cameraposition for pov-output now (overrides internal
  56.          calculation of the position)
  57.  
  58.        
  59.        
  60.        from V1.3 to V1.4:
  61.        ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
  62.        - fixed a bug in the NODULE calculation-mode (Shelly could end up
  63.          in an infinite loop for some parameters)
  64.  
  65.        - fixed a bug that caused "Float-Exceptions" (when calculating
  66.          shells without nodules) on Alpha-Architecture (and others?)
  67.        
  68.        - added "RENDER"-feature (Shelly calls POV itself to render a 
  69.          preview)
  70.        
  71.        - added "Scale"-feature (the shell may be scaled now)
  72.  
  73.        - Shelly now supports 3 different nodule-types in one shell
  74.          (see threenod.shy)
  75.        
  76.        - Shelly now produces outputfiles that tell the right version ;)
  77.        
  78.  
  79.        from V1.2 to V1.3:
  80.        ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
  81.        - fixed a bug in the nodule creation (nodules were not 
  82.          symmetrical)
  83.        
  84.        - added new calculation mode (I call it "dynamic_stepsize"),
  85.          please consult the Usage section!
  86.        
  87.        - added new outputtype ("RAW")
  88.        
  89.        - shelly uses a temporary file for calculation of the camera-
  90.          position (rather than calculating all points twice) now!
  91.  
  92.               
  93.        from V1.0 to V1.2:
  94.        ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
  95.        - added "autofocus" for POV-output (automatic placement of the 
  96.          camera in the right distance) 
  97.  
  98.        - the file 'shelly.pov' is never consultet now!
  99.        
  100.        - the RPL-output now generates much (100 times) smaller objects
  101.  
  102.        - added T3Dlib-support (new Keyword is 'T3D'!)
  103.        
  104.        - the silly countdown is gone
  105.        
  106.        - this time Shelly comes with only one guide ! (hope so :))
  107.  
  108.        
  109.         CONTENTS:
  110.         ¯¯¯¯¯¯¯¯¯
  111.  
  112.         Shelly15.lha contains:
  113.  
  114.          - shelly (the executable for C= Amiga, 
  115.                    uses MC68020 and up & MC68881 and up )
  116.  
  117.          - shelly.c, shelly.h (source & header, ready to compile on various
  118.                                machines)
  119.  
  120.          - examples.jpg (a picture of all examples) 
  121.                         (except 'Lyria' all Shells rendered on my Amiga 
  122.                          (A4000/030, 2C/2F) with Real3D2(Demo:)))
  123.  
  124.          - Planorbis.shy, Nautilus.shy, Lyria.shy, Ammonite.shy
  125.            Oxystele.shy, Natalina.shy...       (some example data-files)
  126.  
  127.          - Shelly.guide (this document)
  128.  
  129.          - Blank.shy   (a blank datafile)
  130.  
  131.          - nodule.gif  (example-picture of the results of the new
  132.                         calculation-mode)
  133.  
  134.          - sh.tcl   (a small Tcl/Tk GUI for shelly)                                 
  135.  
  136.                         
  137.  
  138.         REQUIREMENTS:
  139.         ¯¯¯¯¯¯¯¯¯¯¯¯¯
  140.  
  141.  
  142.         Shelly requires atleast:
  143.  
  144.          (to use the executable provided)
  145.  
  146.           - an Amiga (harddisk & fast processor recommended)
  147.  
  148.           - ixemul.library (NOT! in this package)
  149.           
  150.           - POV-V2.0 or Real3DV2 to look at the results
  151.  
  152.           - or the TDDDlib-converters if you want Shelly to 
  153.             create objects for Imagine etc.
  154.          
  155.           Shelly has been tested on the following configurations:
  156.           -A4000/030
  157.           -A2000D+A2630
  158.           -SUN4/10
  159.           -IBM/RS6000
  160.  
  161.          
  162.          
  163.  
  164.         INSTALLATION:
  165.         ¯¯¯¯¯¯¯¯¯¯¯¯¯
  166.  
  167.         The installation of Shelly is very easy ...
  168.         Just copy the Drawer "Shelly" to a place 
  169.         where you like to install it. 
  170.  
  171.         and give it a '(g)cc shelly.c -o shelly -lm -O2' (not needed on Amiga)
  172.  
  173.  
  174.  
  175.         QuickStart:
  176.         ¯¯¯¯¯¯¯¯¯¯¯
  177.  
  178.         To get started quickly :
  179.  
  180.          - install Shelly (described in Installation)
  181.  
  182.          - open a shell (CLI), cd to the directory "Shelly"
  183.  
  184.          - type 'shelly Planorbis.shy xxx.pov'
  185.            (Planorbis is one of the examples, xxx is the name of the 
  186.             POV-Scene Shelly will create)
  187.  
  188.          - now go and render the file 'xxx.pov'
  189.            (e.g. 'pov -ixxx.pov -f +d' (assuming you have pov in your path))
  190.  
  191.          perhaps you have to edit the file 'xxx.pov' (camera position etc.)
  192.          and try it again to get the best result... 
  193.  
  194.        For detailed information look into the Usage section.
  195.  
  196.         GENERAL
  197.         ¯¯¯¯¯¯¯
  198.  
  199.         just type
  200.  
  201.         'Shelly infile outfile'
  202.  
  203.         to run Shelly from a shell (CLI)
  204.         
  205.         - infile is the (path+)name of a datafile
  206.         - outfile is the (path+)name of the POV/RPL/T3D/RAW/X3D outputfile
  207.  
  208.         - outfile will be overwritten (if it exists)!
  209.         
  210.         - Shelly will also open a file "(path+)outfilename.tmp"
  211.           and overwrite it (this is a temporary file, it will be
  212.           deleted after calculation)
  213.  
  214.  
  215.         DATAFILES:
  216.         ¯¯¯¯¯¯¯¯¯¯
  217.  
  218.         Shelly uses own datafiles in a simple format to get 
  219.         the arguments into the program.
  220.  
  221.  
  222.            Fileformat:
  223.            ¯¯¯¯¯¯¯¯¯¯¯
  224.  
  225.         The files are of a very simple (and easy to process :)) format:
  226.  
  227.         - every line of the file is scanned for keywords.
  228.  
  229.         The following keywords are supported:
  230.  
  231.  
  232.         'alpha:'
  233.         'beta:'
  234.         'phi:'
  235.         'omega:'
  236.         'my:'
  237.         'smin:'
  238.         'smax'
  239.         'sd:'
  240.         'omin:'
  241.         'omax:'
  242.         'od:'
  243.         'P:'
  244.         'L:'
  245.         'A:'
  246.         'a:'
  247.         'b:'
  248.         'W1:'
  249.         'W2:'
  250.         'N:'
  251.         'RPL' (switches to RPL-output)
  252.         'POV' (guess)
  253.         'T3D' (hmm)
  254.         'RAW' (simply the coordinates of the created triangles)
  255.         'X3D' (output for fast viewing in x3d on X11)
  256.                 
  257.         'NORMAL' (default calculation mode)
  258.  
  259.         'NODULE' (switches to calculation mode (dynamic stepsize) 
  260.                   only useful when rendering shells with nodules!)
  261.                   
  262.         'NEWNOD' (switches to new calculation mode (dynamic stepsize) 
  263.                   only useful when rendering shells with nodules!)
  264.  
  265.         
  266.         'Scale:' defines a scale factor for the shell (default is 1.0)
  267.  
  268.         'RENDER' switches preview on (Shelly will automatically call POV
  269.                  after calculation)
  270.                  ONLY available when output-type == POV! and
  271.                  'pov' must be in the search-path!
  272.                  POV will just render the picture! no file is created
  273.                  (options for pov-call are "-f +d -iyour_pov_output") 
  274.  
  275.         'POVARGS:' defines arguments of the pov-call
  276.                    default is "-f +d +w200 +h160")
  277.                    use of this keyword overwrites all default-arguments 
  278.                    passed to pov! 
  279.                    (be sure to specify a complete argument-string for pov)
  280.                    -ixxx is added automatically (don't use this!)
  281.  
  282.         'P2:'    P of second nodule
  283.         'W12:'   W1 of second nodule
  284.         'W22:'   W2 of second nodule
  285.         'L2:'    L of second nodule
  286.         'N2:'    N of second nodule
  287.         'Off2:'  offset (in W2 (O) direction) between 
  288.                  nodule1 and nodule2 (in degrees)
  289.                  
  290.         'P3:'    P of third nodule
  291.         'W13:'   W1 of third nodule
  292.         'W23:'   W2 of third nodule
  293.         'L3:'    L of third nodule
  294.         'N3:'    N of third nodule
  295.         'Off3:'  offset (in W2 (O) direction) between 
  296.                  nodule1 and nodule3 (in degrees)
  297.  
  298.  
  299.     NEW in V1.5:
  300.  
  301.          'Scano:' stepsize for scanning the shell for nodules (in O-dir)
  302.                   & minimal possible stepsize! (default is 0.05) 
  303.          'Hdo:'   defines maximal height difference between two lines
  304.                   (default is 0.1)
  305.          
  306.          'Scans:' stepsize for scanning the shell for nodules (in S-dir)
  307.                   & minimal possible stepsize! (default is 0.05) 
  308.          'Hds:'   defines maximal height difference between two knotpoints in
  309.                   S-dir
  310.                   (default is 0.1)
  311.  
  312.          'camx:'
  313.          'camy:'  x,y,z position of the camera for POV-output
  314.          'camz:'
  315.  
  316.  
  317.         (note that the ':' belongs to the keyword!  you can use
  318.          for instance the word 'alpha' with no risk in comment lines)
  319.  
  320.         (The meaning of a special parameter (keyword) can be found
  321.          in the section about the algorithm.)
  322.  
  323.  
  324.         - if a line contains no keyword it is treated like a comment
  325.  
  326.         - if a line contains a keyword it is interpreted 
  327.           (the number behind the keyword is copied into an internal structure 
  328.            ("alpha:30" sets the internal alpha value to 30) 
  329.           or a flag is set
  330.            (the 'RPL' keyword sets the flag "we_have_to_produce_an_RPL-file"))
  331.  
  332.         - as you can see we have keywords that need parameters behind them
  333.           and keywords that just have to be there to set something
  334.  
  335.         - the only "Flag-keywords" the program knows are: 'POV','RPL','T3D',
  336.           'RAW','X3D','NORMAL','NODULE','NEWNOD','RENDER'
  337.           all other keywords need to be combined with a number 
  338.           (as the ':' states)
  339.  
  340.         - everything is casesensitive! ('RPL' != 'rPl')
  341.  
  342.         - the file is not checked for anything else
  343.  
  344.         - double use of the same keyword causes an overwriting of the
  345.           last set value
  346.  
  347.         - lines like "alpha:Blafasel" will cause NO errormessage
  348.           (there are no messages at all ;))
  349.  
  350.  
  351.         note: the keyword does not have to stand alone!
  352.               if you write a line like:
  353.  
  354.               "/*RPL*/" or "BlafaseRPLl"
  355.  
  356.               the RPL-flag will be set! But you could also write:
  357.  
  358.               "render this in RPL pleazze :)"
  359.  
  360.  
  361.  
  362.         There is a special file ("Blank.shy") prepared for you that is blank
  363.         (contains only some necessary keywords).
  364.  
  365.         consider:
  366.  
  367.          - some parameters have to be given in degrees, some not
  368.            (look into the algorithm section)
  369.  
  370.          - if you want Shelly to create a RPL file as output add a line
  371.            like "RPL" or "pleazze do it in RPL" to the file
  372.            ("T3D" will switch to T3D-output)
  373.            (POV output is default)
  374.  
  375.          - be careful with the parameters, don't try to fool Shelly 
  376.            ("what does it do if I enter an infinite value :)?") 
  377.            it will end up in a mess or coredump or our beloved friend! 
  378.            because the values are not checked!
  379.            
  380.            You should just change the given examples slightly until you 
  381.            know what you are doing...
  382.  
  383.          - smin,smax,sd,omin,omax,od are very critical parameters
  384.            because they determine the size of the output and the memory
  385.            consumption while calculating the shell   
  386.  
  387.          - o must be positive! (omin >= 0, omax > omin, od > 0)
  388.  
  389.          - always remember:
  390.            This program has still the status "experimental"!
  391.  
  392.          - there is a new calculation mode in V1.5 (Modi).
  393.  
  394.  
  395.        CALCULATION MODI:
  396.        ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
  397.        
  398.        There are several ways of calculating a shell (means dividing the
  399.        surface of the shell into subfaces, triangles)
  400.        
  401.        currently there are 3 methods implemented in Shelly:
  402.        
  403.  
  404.           The NORMAL-MODE:
  405.           ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
  406.        Nothing special, just lay a grid (specified by smin,smax,sd,
  407.        omin,omax,od) over the surface and calculate the knotpoints.
  408.        Then connect the knotpoints to triangles, or use them to build
  409.        a B-Spline-mesh.
  410.        
  411.        
  412.        
  413.        
  414.           The NODULE-MODE:
  415.           ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
  416.  
  417.        This is a new (changed in 1.5!!!) calculation mode that can 
  418.        save you object-data, up to 40%! (but only in shells with nodules!) 
  419.  
  420.        It is called "dynamic_stepsize" and can be invoked by using the
  421.        NODULE keyword. (default mode is NORMAL)
  422.        
  423.        How it works:
  424.        
  425.        - imagine a shell with nodules (look at "nodule.gif"),
  426.          if there is enough space between the nodules it might be
  427.          possible to increase the stepsize (in o-direction)
  428.          between the nodules without loss of information.
  429.  
  430.        - this means high resolution is only used when needed (in the nodules)
  431.          the rest of shell is calculated in a lower resolution
  432.          
  433.        - Attention! 
  434.          In this new mode it is possible to choose a stepsize (od) that
  435.          is bigger than the size of the nodules (W2) without fear of missing
  436.          nodules ("jumping" over a small nodule with a big step)
  437.          ALL nodules are calculated correctly.
  438.          
  439.        - The Shell is scanned in (O-direction) for nodules (with a stepsize 
  440.          given via new keyword 'Scano:'). 
  441.          In a nodule Shelly will compute the height difference to the next 
  442.          line.
  443.          If the height difference exceeds a threshold (keyword 'Hdo:'), 
  444.          the stepsize will be made smaller just that it exactly matches 
  445.          the height difference.
  446.          The smallest possible step is limited by 'Scano:' too!)
  447.          
  448.        - Default value for  Scano: is 0.05
  449.                             Hdo:   is 0.1
  450.          this should be best for the most cases, but feel free to experiment,
  451.          as smaller the Hdo: as finer are the nodules calculated.
  452.  
  453.  
  454.           The NEWNOD-MODE:
  455.           ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
  456.  
  457.        This mode is very similar to the NODULE mode, except that it does
  458.        the same thing (refinement dependant on height difference) for 
  459.        the S-direction too.(use 'NEWNOD' to switch to it)
  460.        This causes an irregular structure of the resulting grid, so that 
  461.        output as B-Spline-mesh is impossible (the RPL-output will create
  462.        a bunch of triangles instead)!
  463.  
  464.        The keywords for the NODULE mode ('Scano:','Hdo:') are used aswell
  465.        as two new ones ('Scans:','Hds:') in the same way.
  466.         
  467.        - Default value for  Scans: is 0.05
  468.                             Hds:   is 0.1
  469.         
  470.          this should be best for the most cases, but feel free to experiment,
  471.          as smaller the Hds: as finer are the nodules calculated.
  472.  
  473.  
  474.  
  475.  
  476.          PROBLEMS
  477.          ¯¯¯¯¯¯¯¯
  478.  
  479.            - it is nothing to be seen in POV:
  480.               probably the camera/light positions are wrong       
  481.               take a look at the data in your pov-file and correct this
  482.        
  483.  
  484.            - POV tells me something from "degenerated triangles"
  485.               well this problem did not occur yet (in shelly) but I know
  486.               it could happen (former projects)
  487.               nothing serious, just some triangles with 2 points the same        
  488.  
  489.            - Imagine does not accept the Shelly-output
  490.               convert the output via 'readwrite' from the TDDD-Package
  491.               to the binary TDDD-format
  492.                      
  493.            - Real3Ds annoying "Stack full" message comes up everytime
  494.              a macro is executed:
  495.              
  496.               - change the RPL-stacksize (menu: Settings/RPL)
  497.                  (increase the "Parameter Stack")
  498.               - open a new RPL-window
  499.               - type: '"(path+)macroname" LOAD'
  500.  
  501.  
  502.            - strange numbers (NaN's) occur in the output:
  503.  
  504.               Well this problem is known to me but no solution (sorry).
  505.               
  506.               Since the algorithm is somewhat complex I really don't 
  507.               want to have to find out which combination of which 
  508.               parameters cause this.
  509.               
  510.               It is also a problem of the sideeffects and (numerical)
  511.               stability of the "mathematic" functions I call.
  512.               
  513.               note: I suppose zeros are the source of all this
  514.                     -> try to avoid them          
  515.  
  516.  
  517.  
  518.         Hints
  519.         ¯¯¯¯¯
  520.  
  521.         for Real3D-users:
  522.         
  523.         - remember that in a B-Spline-mesh the first and last line 
  524.           (and in each line the first and last point) 
  525.           of the mesh will be invisible (unless you switch objecttype
  526.           to Polygon or Phong) 
  527.           this means for a shell with smin:10, smax:210, sd:20 that you
  528.           will see a shell created from smin:30 to smax:190!
  529.           (all examples will suffer from this if you just add the RPL
  530.            keyword)
  531.           solution: increase the ranges of s and o.
  532.  
  533.  
  534.         - if you want nodules in RPL-objects:
  535.  
  536.           You should choose proper values of od and sd to see the nodules
  537.           at all
  538.            (if you have nodules that are 10° wide (in o-direction) and you 
  539.             choose an od of 40° you will see probably no nodules!)
  540.            (this is also important for the POV-output)
  541.  
  542.           You should double the nodule height (L) for B-Spline objects 
  543.           to get the same height of the nodules as a POV-output!
  544.  
  545.  
  546.         - if you want to create a shell without nodules you may
  547.           double the sd and od values for B-Spline objects without loss
  548.           of quality in many cases
  549.  
  550.  
  551.  
  552.         The Algorithm:
  553.         ¯¯¯¯¯¯¯¯¯¯¯¯¯¯
  554.  
  555.         In this section you will find more detailed information on the 
  556.         algorithm used by Shelly and on the parameters it uses.
  557.  
  558.         - The basic idea of the algorithm is to simulate a shell shape
  559.           by rotating & moving (©ing) an ellipse (or a part of an 
  560.           ellipse, or any other curve (a cardiod)) around an axis.
  561.           This will end up in some sort of spiral-shape.
  562.  
  563.         - The shape produced will depend on many things like:
  564.                -starting size/place/orientation of the ellipse
  565.                -exact form of the ellipse (nodules)
  566.                -how fast is the ellipse growing while rotating etc.
  567.  
  568.         - you can find the exact formulas in the original article or
  569.           in the sourcecode (too lazy to write them here again, they are
  570.           very complex)
  571.  
  572.         - here is a list of all parameters that shelly needs to generate 
  573.           a shell:
  574.  
  575.          -angular parameters (given in degrees):
  576.           alpha    :equiangular angle of spiral
  577.           beta     :angle between z-axis and line from aperture local 
  578.                     origin to xyz-origin
  579.           phi      :tilt of ellipse major axis from horizontal plane
  580.           omega    :amount of azimuthal rotation of aperture
  581.           my       :amount of "leaning over" of aperture
  582.  
  583.           smin     :angle at which aperture generating curve begins
  584.           smax     :angle at which aperture generating curve ends
  585.           sd       :stepsize in s-direction
  586.           omin     :angle at which spiral begins
  587.           omax     :angle at which spiral ends
  588.           od       :stepsize in o-direction
  589.  
  590.           P        :position of nodule, in terms of angle s
  591.           W1       :width of nodule in s-direction
  592.           W2       :width of nodule in o-direction
  593.  
  594.          -linear dimensions
  595.           A        :distance from main origin of aperture at o=0
  596.           a        :major radius (long axis) of ellipse at o=0
  597.           b        :minor radius (short axis) of ellipse at o=0
  598.           L        :height of nodule at o=0
  599.  
  600.          -other
  601.           N        :number of nodules per whorl
  602.  
  603.  
  604.         - the parameters smin,smax,sd,omin,omax,od determine
  605.           how many triangles (controlpoints) are generated
  606.           (how smooth is the shell and how many whorls are generated) 
  607.           -> be careful with these: memory usage and filesize depend 
  608.              directly on this parameters
  609.  
  610.         - the parameters alpha,beta,phi,omega,my determine the orientation
  611.           of the ellipse before (and while) rotating
  612.  
  613.         - the parameters A,a,b determine starting place and size of the 
  614.           ellipse
  615.           
  616.         - the parameters P,N,L,W1,W2 determine number,size and place
  617.           of nodules
  618.  
  619.  
  620.  
  621.         Credits:
  622.         ¯¯¯¯¯¯¯¯
  623.  
  624.  
  625.         - M.B. Cortie for his article "Digital Seashells"
  626.         - Martin Huttenloher for the icon of the guide
  627.           (Thanks for MagicWB!)
  628.  
  629.         Thanks to the people who ported GCC & CSH to the Amiga
  630.         and to Soulman (IRC) who helped me to realize the difference
  631.         between 2 and 2.0 ;).
  632.  
  633.  
  634.  
  635.         DISTRIBUTION:
  636.         ¯¯¯¯¯¯¯¯¯¯¯¯¯
  637.  
  638.         Shelly may be distributed FREELY via any media as long as:
  639.  
  640.         1) The archive shelly.lha and its content remains unchanged.
  641.  
  642.         2) No money (except a small copying fee) changes hand.
  643.  
  644.  
  645.  
  646.         (Although Shelly is Freeware I won't reject gifts like
  647.          money, chocolate, your latest piece of (gfx related) code etc..
  648.          My adress can be found below..)
  649.  
  650.  
  651.  
  652.         DISCLAIMER:
  653.         ¯¯¯¯¯¯¯¯¯¯¯
  654.  
  655.         This program comes with no warranty, either expressed or implied.
  656.         The author is in no way responsible for any damage or loss that 
  657.         may occur due to direct or indirect usage of this software.
  658.         Use this software entirely at your own risk.
  659.  
  660.  
  661.         ADDRESS:
  662.         ¯¯¯¯¯¯¯¯
  663.         send 
  664.         chocolate, money, your programs, bug reports (NOOOOOOO!:) etc.
  665.         to:
  666.  
  667.         Randolf Schultz
  668.         Unter den Linden 51
  669.         19079 Mirow
  670.         GERMANY
  671.  
  672.  
  673.         INTERNET: rschultz@informatik.uni-rostock.de 
  674.  
  675.                   or (not regularly read)
  676.                   
  677.                   tfb512@hp1.rz.uni-rostock.de
  678.          
  679.  
  680.         
  681.